The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
A problem often arises in two-way communications. A person may be communicating with someone else using a communications device, such as a laptop computer or mobile telephone, which have both microphones and loudspeakers. These components may be built-in to the communications device. While the person is communicating using such a device, echo may become a problem. The sound that is emitted from the loudspeaker is picked up by the microphone and is transmitted back to the party that produced the sound. Thus, the person on the opposite end of the communication channel hears himself speaking. This is an undesirable result. Ideally, the person on the opposite end of the communication channel would hear only the person on the near end of the communication channel speaking, without any echo.
In order to combat this problem, echo control techniques are sometimes used within communications devices. These techniques take advantage of the fact that the communications device can observe the audio signal being played back by the device's loudspeaker. This isolated audio signal is referred to as the “reference signal.” The communications device attempts to identify the echo produced by the reference signal within the incoming audio signal that is being received by the device's microphone—but, as will be learned from the discussion below, this attempt is imperfect. After identifying the echo within the incoming audio signal, the communications device attempts, though imperfectly, to filter it out of the incoming audio signal so that only incoming sound other than the echo remains within the incoming audio signal. After attempting, though imperfectly, to filter the incoming audio signal in this manner, the communications device sends the imperfectly filtered audio signal on to the person on the far end of the communication channel. In this manner, the communications device attempts, imperfectly, to remove the undesired echo from the audio signal.
Attempting to remove echo from the audio signal is difficult, and this difficulty leads to the imperfection in existing echo control techniques. The reference signal is a “clean” digital signal prior to being played out of the communications device's loudspeaker. However, after the reference signal passes through the device's electronics (digital and analog) hardware and causes the usually tiny loudspeakers to produce sound, the sound ends up being a highly distorted representation of the information that the reference signal actually carried. In real life, in actual systems, the loudspeaker rattles, vibrates, saturates, and heats up, thereby distorting the loudspeaker's sound output. Consequently, the loudspeaker's output sound is not truly a linearly transformed product of the reference signal. Moreover, in modern, mobile devices, the placement of the loudspeaker(s) and microphone(s) is usually non-ideal—they are very close to each other physically. This leads to the echo being much stronger than the desired local voice signal level. Unfortunately, existing echo control techniques do not deal well with these aforementioned scenarios. These techniques, which borrow heavily from linear system concepts such as correlation, coherence or wiener filtering, work reasonably well with linear systems and weakly-non-linear systems. But they break down and perform poorly when faced with highly non-linear echo that are also much louder than the local voice. The symptoms of failure of existing solutions include poor double talk performance and/or audible echo on the far side.
The input signal being received by the communication device's microphone potentially represents, at least partially, the speech of the communication device's user. The input signal also may include information that represents sound that the microphone is picking up from the device's loudspeaker—the echo. A linear echo canceller attempts to remove, from the input signal being received by the communications device's microphone, the information that the echo canceller can deduce from the known reference signal. However, because the loudspeaker sound being picked up by the microphone is not truly a linearly transformed representation of the reference signal, this removal is imperfect and leaves non-linear artifacts of the echo within the input signal. These artifacts end up being transmitted along with the speech of the communications device's user to the person on the far end of the communication channel.